<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 所有的对象 都可以使用 所属构造函数原型上的方法 
        // 如下所示
        /*
                    function Test1(){
            
            }
            
            Test1.prototype.init1 = function(){}
            Test1.prototype.init2 = function(){}
            Test1.prototype.init3 = function(){}
            
            const t1 = new Test1();
            const t2 = new Test1();
            const t3 = new Test1();
            
            // 所有的对象都可以使用 init1 init2 init3 三个方法 
        
        
        */

       // 所有的数组 的构造函数 Array 
       // 所有的对象 的构造函数 Object 
       // 所有的正则 的构造函数是RegExp
       // 所有的函数 的构造函数是 Function 




       // 数组 没有求最大值的方法  


       //如何让你的文件中的所有数组 有求数组中元素最大值的方法
    //    var arr1 = [1,2,3,4];
    //    var arr2 = [5,6,7,8];

    //    arr1 arr2 的构造函数是Array 都可以使用Array原型上的方法 
        // 如果我们在Array的原型上加一个求最大值的方法 
        // arr1 arr2 都可以用 

       
      Array.prototype.getMax = function(){
        //  alert(this); 构造函数的this 代表的是本次实例化的对象 
        // 创建一个变量 假设下标0对应的元素最大 
        // 从下标1开始 到最后挨个跟这个变量中的值比较,如果比它大,替换它里边的值
        var max = this[0];
        for(let i=1;i<this.length;i++){
            if(this[i]>max) max=this[i]
        }

        return max;
      }


        
    //    var arr3 = [10,3,5,6,16,43,89,5,37,28];

    //    console.log(arr3.getMax()); // 先到自己身上找getMax 没有 到自己的__proto__ 找
    //    // 自己的__proto__ 等于 所属构造函数的prototype


    //    var arr4 = [1,2,3,4,5,6,4,3,4,5,6,4,3,3,5,7,8,18];

    //    console.log(arr4.getMax());

       //如何让你的文件中的所有数组 有求数组中元素去重的方法

       Array.prototype.unique_item = function () {
            const arr = [];
            for(let i=0;i<this.length;i++){
                if(arr.indexOf(this[i]) == -1){
                    arr.push(this[i]);
                }
            }
            return arr;
       }

       var arr5 = [1,2,3,4,5,6,4,3,4,5,6,4,3,3,5,7,8,18];
       
      
       console.log(arr5.unique_item());


        // 让我们的文件的对象都具备一个打招呼的方法  sayhello()

        Object.prototype.sayhello = function(){
            console.log('hello world');
        }


        const obj = {
            name:'zhangsan'
        }

        obj.sayhello()
    </script>
</body>

</html>